--- title: "L1-032 Left-pad" created: 2025-11-28 tags: - 算法 --- # L1-032 Left-pad ## 题目 [L1-032 Left-pad](https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=994805100684361728&page=0) ![[image-a8ed05b3.png]] ## 思路分析 ```cpp 输入 getline 用法:getline(cin, stringVar); 目的:读取一整行文本,直到遇到换行符`\n`。`getline`会丢弃换行符,但会读取并保留行中的其他所有字符,**包括空格**。 场景:当你需要读取包含空格的一行文本或者确保一次读取直到行末尾时,`getline`是最佳选择。 注意:在getline之前使用cin或scanf读取其他数据,并且期望紧接着用getline读取下一行时,需要注意消耗掉留在输入缓冲区中的换行符 cin>>n; getline(cin,s); for(int i=0;i using namespace std; #define endl '\n' #define int long long using ll = long long; using ull = unsigned long long; using PII = pair; using Pll = pair; int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; const int inf = 0x3f3f3f3f; signed main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); //如果满足长度n 截取原串中的最后n位 //如果不满足长度n ?是否可以简单判断需要补几位 输出几个tag 再输出原串 int n;char tag;cin>>n>>tag; string os;//包含空格 需使用getline读一整行 getline(cin,os);//需要把缓冲区的换行读掉才能正常读入 getline(cin,os);//真正读入原串 // cout<=n){ int idx=os.size()-n; string ans=os.substr(idx,n); cout<